package com.fjec.market.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Map;

/**
 * <p>
 * 042.实物子订单表
 * </p>
 *
 * @author admin
 * @since 2020-09-21
 */
@Data
@TableName(value = "biz_sub_physical_order", autoResultMap = true)
public class BizSubPhysicalOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键Id
     */
    @TableId("Id")
    private Long id;

    /**
     * 订单Id
     */
    @TableField("OrderId")
    private Long orderId;

    /**
     * 市场编号
     */
    @TableField("MarkCode")
    private Integer markCode;

    /**
     * 商品SkuId
     */
    @TableField("SkuId")
    private Long skuId;

    /**
     * 总金额 单位分
     */
    @TableField("Amount")
    private Integer amount;

    /**
     * 实际金额 单位分
     */
    @TableField("RealAmount")
    private Integer realAmount;

    /**
     * 邮费 单位分
     */
    @TableField("Postage")
    private Integer postage;

    /**
     * 购买数量
     */
    @TableField("Num")
    private Integer num;

    /**
     * 批量采购数量
     */
    @TableField("BulkPurcNum")
    private String bulkPurcNum;

    /**
     * 是否使用优惠 0=否
1=是
     */
    @TableField("UseDisc")
    private Integer useDisc;

    /**
     * 优惠信息 {
voucher: [{id: xxxxxxxx, start:2020-08-08 00:00, end: 2020-08-09 00:00}],
discount: {start:2020-08-08 00:00, end: 2020-08-09 00:00, discount: 0.8}
}
     */
    @TableField("DiscInfo")
    private String discInfo;

    /**
     * 发货时间
     */
    @TableField("DeliveredTime")
    private LocalDateTime deliveredTime;

    /**
     * 签收时间
     */
    @TableField("SignedTime")
    private LocalDateTime signedTime;

    /**
     * 商品快照
     */
    @TableField(value = "SkuSnapshot", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> skuSnapshot;

    /**
     * 更新版本号 更新数据版本号
     */
    @Version
    @TableField("UpdateVer")
    private Integer updateVer;

    /**
     * 投诉状态 0=无投诉
1=投诉
2=投诉处理完毕
3=退款完成
     */
    @TableField("ComplaintStatus")
    private Integer complaintStatus;

    /**
     * 是否退货/退款 0=否
1=是
     */
    @TableField("HasRefund")
    private Integer hasRefund;

    /**
     * 分账状态 0=否
1=是
     */
    @TableField("DistStatus")
    private Integer distStatus;

    /**
     * 删除标记 0=否
1=是
     */
    @TableField("DelFlag")
    private Integer delFlag;

    /**
     * 创建时间
     */
    @TableField("CreateTime")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("UpdateTime")
    private LocalDateTime updateTime;

    /**
     * 子订单状态
     */
    @TableField("OrderStatus")
    private Integer orderStatus;
}
